#ifndef PUSHGATEWAY_PUSH_MYSQLI_H
#define PUSHGATEWAY_PUSH_MYSQLI_H

#include "php_pushgateway.h"

#include <vector>

#include "helper.h"
#include "scaler.h"
#include "client.h"
#include "push_utils.h"

#include "ext/mysqli/php_mysqli_structs.h"
#include "ext/mysqlnd/mysqlnd_libmysql_compat.h"
#include "ext/mysqlnd/mysqlnd_structs.h"
#include "ext/mysqlnd/mysqlnd_enum_n_def.h"

using namespace std;

void push_mysqli_handler(zend_execute_data *execute_data, zval *return_value, long execute_micro_time, string class_name, string function_name);
void push_mysqli_obj_handler(zend_execute_data *execute_data, zval *return_value, long execute_micro_time, string class_name, string function_name);
void push_mysqli_stmt_handler(zend_execute_data *execute_data, zval *return_value, long execute_micro_time, string class_name, string function_name);
void push_mysqli_stmt_obj_handler(zend_execute_data *execute_data, zval *return_value, long execute_micro_time, string class_name, string function_name);

#endif